function Object_EasyuiGrid(id){
	this.gridID=id;
}
// 构造函数的原型
Object_EasyuiGrid.prototype = {
		// 算法。排序
		f_easyui_row_sort:function(index, type) {
			$('#' + this.gridID).datagrid('endEdit', index);
			if ("up" == type) {
				if (index != 0) {
					var toup = $('#' + this.gridID).datagrid('getData').rows[index];
					var todown = $('#' + this.gridID).datagrid('getData').rows[index - 1];
					$('#' + this.gridID).datagrid('getData').rows[index] = todown;
					$('#' + this.gridID).datagrid('getData').rows[index - 1] = toup;
					$('#' + this.gridID).datagrid('refreshRow', index);
					$('#' + this.gridID).datagrid('refreshRow', index - 1);
					$('#' + this.gridID).datagrid('selectRow', index - 1);
				}
			} else if ("down" == type) {
				var rows = $('#' + this.gridID).datagrid('getRows').length;
				if (index != rows - 1) {
					var todown = $('#' + this.gridID).datagrid('getData').rows[index];
					var toup = $('#' + this.gridID).datagrid('getData').rows[index + 1];
					$('#' + this.gridID).datagrid('getData').rows[index + 1] = todown;
					$('#' + this.gridID).datagrid('getData').rows[index] = toup;
					$('#' + this.gridID).datagrid('refreshRow', index);
					$('#' + this.gridID).datagrid('refreshRow', index + 1);
					$('#' + this.gridID).datagrid('selectRow', index + 1);
				}
			}
		}
		// 上移
		,MoveUp: function () {
			var row = $('#' + this.gridID).datagrid('getSelected');
			var index = $('#' + this.gridID).datagrid('getRowIndex', row);
			this.f_easyui_row_sort(index, 'up');
		}
		// 下移
		,MoveDown: function () {
			var row = $('#' + this.gridID).datagrid('getSelected');
			var index =$('#' + this.gridID).datagrid('getRowIndex', row);
			this.f_easyui_row_sort(index, 'down');
		}
		// 结束编辑
		,endEditing: function(editIndex) {
			if (editIndex == undefined) {
				return true
			}
			if ($('#' + this.gridID).datagrid('validateRow', editIndex)) {
				$('#' + this.gridID).datagrid('endEdit', editIndex);
				return true;
			} else {
				return false;
			}
		}
		// 对指定行-进行编辑状态
		,beginEdit(index, field,endEditIndex) {// 进入编辑状态的坐标，设置焦点的列，需要结束编辑状态的坐标（如果有，优先执行）
			if(endEditIndex||endEditIndex>-1){
				$('#' + this.gridID).datagrid('endEdit', endEditIndex);
			}
			$('#' + this.gridID).datagrid('beginEdit', index);// {index:index,
			var ed = $('#' + this.gridID).datagrid('getEditor', { index : index, field : field });// 获取当前编辑器
			if(ed){
				($(ed.target).data('textbox') ? $(ed.target).textbox('textbox') : $(ed.target)).focus();
			}
		}
		// 删除一行记录
		,deleteRow(index) {
			var row = $('#' + this.gridID).datagrid('getSelected');
			if(!row){
				return false;
			}
			if(!index){
				 index = $('#' + this.gridID).datagrid('getRowIndex', row);
			}
			$('#' + this.gridID).datagrid('deleteRow', index)
			return true;
		}
		// 手动设置index行为选择状态
		, selectRow(index){
			$('#' + this.gridID).datagrid('selectRow', index);
		}
		// 添加一行记录
		, addRow(rowData) {
			if(!rowData){
				rowData={};
			}
			var row = $('#' + this.gridID).datagrid('getSelected');
			var index = row ? $('#' + this.gridID).datagrid('getRowIndex', row) : 0;
			$('#' + this.gridID).datagrid('insertRow', {
				index : (++index),
				row : rowData
			});
			return row ?index:0;
		},
		// 重新加载数据
		reload(){
			$('#' + this.gridID).datagrid('reload');
		},
		// 获取数据
		getData(){
			return $('#' + this.gridID).datagrid('getData');
		},
		
		getEditor(rowIndex,fileName){
			return $('#' + this.gridID).datagrid('getEditor',{ index: rowIndex, field: fileName });
		},
		
		validateAllCumlun(rows){
			var datas=$('#' + this.gridID).datagrid('getData');
			for(var row in datas){
				console.log(row);
			}
		},
		
		updateCell(rowIndex,rowData){
			$('#' + this.gridID).datagrid('updateRow',{index: rowIndex, row: rowData});
		},
		// 设置请求参数-值
		setParams(key,value) {
            var queryParams = $('#' + this.gridID).datagrid('options').queryParams;
            queryParams[key] = value;
        },
		/**
		 * index 第几行
		 * name  combobox组件所在列 列名
		 * showValue combobox取出的值写到哪列中
		 * showText  combobox取出的显示值写到哪列中
		 * f_yourfunction 回调整函数 当回调函数存在时，执行判断，true时写入值，false时不写值
		 */
		setComboboxValueToGridCell(index,name,showValue,showText,f_yourfunction){//还没真正结束编辑状态时，才起作用
			var ed =$('#' + this.gridID).datagrid('getEditor',{ index: index, field: name });
			if (ed) {
				var row={}
				row[showValue]=$(ed.target).combobox('getValue');//取得值
				row[showText]=$(ed.target).combobox('getText');//取得显示内容
				if(null==f_yourfunction){
					$('#' + this.gridID).datagrid('updateRow',{index: index, row: row});//更新相关值 到指定行，指定列
				}else if(f_yourfunction(row)){
					$('#' + this.gridID).datagrid('updateRow',{index: index, row: row});//更新相关值 到指定行，指定列
				}
				
			}
		}
		,toFormatZT(str) {//对特殊字符，转码
		    return str ? str.replace(/\'/g, "&#39;").replace(/\"/g, "&quot;").replace(/\\/g, "&#92;").replace(/</g, "&#60;").replace(/>/g, "&#62;") : "";
		}
		,fzFormatZT(str) {//反转码
		    return str ? str.replace(/&#39;/g, "'").replace(/&#34;/g, "\"").replace(/&quot;/g, "\"").replace(/&#92;/g, "\\").replace(/&#60;/g, "<").replace(/&#62;/g, ">") : "";
		}
}
function f_myajax_async_false(url, data) {
    var m;
    $.ajax({
        url: url
        , data: data ? data : {}
        , dataType: "json"
        , async: false
        , type: "post"
        , success: function (rs) {
            m = rs;
            return rs;
        }
        , timeout: 6000
    });
    return m;
}